package com.company.utilities;

import java.util.List;

import org.aspectj.lang.ProceedingJoinPoint;

import com.company.model.Producto;

public class Logger {

	
	public void logeaAntes(){
		
		System.out.println("ANTES:: llamada a metodo de servicios");
	}
	public void logeaDespues(){
		
		System.out.println("DESPUES:: llamada a metodo de servicios");
	}
	
	public Object logeaDentro(ProceedingJoinPoint pjp) throws Throwable {
	    // antes de la invocacion al metodo
		System.out.println("ANTES AROUND:: llamada a metodo de servicios");
	    Object resultadoObtenidoDeLaInvocacionDelMetodo = pjp.proceed();
	    List<Producto> productos=(List<Producto>) resultadoObtenidoDeLaInvocacionDelMetodo;
	    productos.add(new Producto("producto incluido en el interceptor!!"));
	    //despues dela invocacion al metodo
	    System.out.println("DESPUES AROUND:: llamada a metodo de servicios");
	    return resultadoObtenidoDeLaInvocacionDelMetodo;
	}
}
